1. Field of the Invention
The present invention relates to a program boot method for a hard disk controller, a hard disk controller and a hard disk drive to which the method is applied, and a control program for a hard disk controller and, more specifically, it relates to a technology for allowing a hard disk controller to cope with a plurality of disk rotation speeds.
Hard disk drives have been increasing in speed year after year. Along with this trend, there arises a need to develop hard disk controllers to cope with increases in rotation speed of spindles and in recording density, in a very short period, with cost increase kept low as much as possible. This is because there has been a growing demand for lowering the cost of the whole hard disk drive through the years.
2. Description of the Related Art
FIG. 6 shows an example of a general configuration of a hard disk controller.
In a hard disk controller 410 shown in FIG. 6, a disk controlling section 411 intermediates exchange of control data on the operation of a hardware section, between a processor 412 and the hardware section which comprises a spindle motor 404 for rotating a disk 403, a servo motor 405 for moving a magnetic head 402, and a motor driving section 401 for controlling their operations. The disk controlling section 411 also relays processing of sending and receiving input and output data between the processor 412 and the magnetic head 402. The motor driving section 401 shown in FIG. 6 drives, in accordance with an instruction from the disk controlling section 411, the spindle motor 404 for rotating the disk 403 and the servo motor 405 for moving the magnetic head 402. As shown in FIG. 6, the hard disk controller 410 is provided with a mask ROM 413 storing therein a boot program and a RAM 414 to store therein a main program.
Further, in a system area (shown with hatchings in FIG. 6) of the disk 403 shown in FIG. 6, a main program for operating a hard disk drive in an optimal condition is recorded by a manufacturer of the hard disk drive before shipment of the device. As shown in FIG. 6, an outer peripheral portion of the disk 403 or a recording area of concentric shape in the radial direction of the disk 403 may be assigned to this system area, for example, in place of a central portion of the disk 403. Meanwhile, a user area of the disk 403 shown in FIG. 6 is an area that a user can freely use.
Upon power-on of the hard disk drive, the processor 412 starts processing required to boot the hard disk drive in accordance with the boot program stored in the mask ROM 413. First, an operation setup section 416 inputs an instruction for operating hardware such as the spindle motor 404, the servo motor 405 and so on into the disk controlling section 411, in accordance with associated procedures and data included in the boot program. In response to this, the disk controlling section 411 drives the spindle motor 404 and the servo motor 405 via the motor driving section 401, thereby rotating the disk 403 at an appropriate speed as well as moving the magnetic head 402 to the system area where the main program is recorded. Then, a program loading section 417 receives via the disk controlling section 411 the main program read from the disk 403 by the magnetic head 402, and writes the main program to the RAM 414.
After the main program is stored in the RAM 414 as described above, a normal operation section 418, in turn, controls operations of the disk controlling section 411 and an interface controller 415 in accordance with the main program stored in the RAM 414.
This main program includes adjustment data and so on suited to characteristics of hardware provided in an individual hard disk drive. Therefore, the hard disk drive cannot normally operate to achieve expected performance without the main program loaded in a manner as described above.
Conventionally, the system area and the user area are not divided on the disk 403 shown in FIG. 6, and servo controlling data equivalent to expected highest rotation speed and recording density of an operative hard disk drive is recorded thereon. Accordingly, the main program is recorded on the disk 403 at the above highest rotation speed and recording density as data recorded in the user area.
To correctly load the main program thus recorded on the disk 403, the operation setup section 416 needs to drive the motor driving section 401 via the disk controlling section 411, and to accelerate the rotation speed of the spindle motor 404 to the rotation speed at which the main program has been recorded.
For implementation of this operation setup section 416, the boot program stored in the mask ROM 413 has to include data indicating a rotation speed to which the spindle motor 404 should reach.
In the prior art, therefore, there has to be developed a dedicated boot program to a new rotation speed and recording density, or a new combination of a data table including data suitable for a new disk rotation speed and a general-purpose boot program, every time the rotation speed or the recording density of disks is improved. In addition, to install a mask ROM storing therein the new dedicated boot program or combination of the general-purpose boot program and the data table, a disk controller LSI with integrated circuits for implementing a hard disk controller has to be newly developed.
Besides, a hard disk controller is also developed which properly functions coping with a plurality of types of hardware operating at a plurality of different disk rotation speeds.
This hard disk controller incorporates a mask ROM on which a plurality of boot programs for a plurality of types of hardware having different rotation speeds and recording densities from each other. By switching these boot programs for use, one disk controller LSI copes with the plurality of types of hardware.
It is very disadvantageous to develop a new hard disk controller in keeping with improvements in hardware performance as described above because it requires not only a number of man-hour to develop boot programs for hardware of each different type but a number of man-hour required for inspection of every disk controller LSI with these boot programs installed therein.
On the other hand, in the case where a plurality of boot programs are stored in a mask ROM, developmental works for coping with a plurality of types of hardware can be integrated into a development work for one disk controller LSI. The boot program to be stored, however, is accordingly increased in size, requiring use of an expensive large-capacity mask ROM. In short, one disk controller LSI can cope with various types of hardware, on the other hand, the hard disk controller itself is greatly increased in cost. In addition, it is still necessary to develop boot programs adaptable to individual types of hardware as in the first mentioned measures.
The boot program's expected basic functions are to read a main program recorded on a disk and store it in a RAM provided in a hard disk controller, and to hand over processing to the main program. These basic functions are in common with all boot programs irrespective of the type of hardware.
Nevertheless, in the prior art separate boot programs are developed for every type of hardware. This is because it is assumed that individual hard disk drives are to read the main program from a disk at their attainable highest rotation speed and recording density which will educe their respective expected operative performance.